跳到主要内容

掘金命令行客户端来啦

· 阅读需 7 分钟
Random Image
图片与正文无关

大家好,又好久没有写这个系列啦,大家还记得我嘛? Semo 是个小众工具,也没指望大家把这个工具用在业务项目中,做一个玩具还是可以推荐一下的,期望大家也把自己的创意做成 Semo 插件。

今天给大家带来的玩具是掘金命令行客户端 semo-plugin-juejin,我之前做 semo-plugin-read 的时候,发现掘金的页面可以很好的转成 markdown 用来转储收藏,当时的逻辑是:

transfer(掘金 URL)-to(Markdown)->(pdf|png|html|epub|...)

后来,发现掘金的网站是前后端分离的,各个栏目的接口都是很好解析的,于是乎我就冒出个想法,干嘛要把掘金的内容转换格式在看呢,直接在命令行里看不就行了嘛。

好了,话不多说,直接给大家展示成果:

安装 @semo/cli

再次提醒大家,所有 Semo 的插件都需要先安装 @semo/cli 这个命令行工具,对于本地电脑,安装在全局即可。

npm i -g @semo/cli

然后,推荐大家安装 mdcat 这个命令行工具,可以让 Mac 的 iterm2 支持看图。

brew install mdcat

注意,目前这个工具仅在 Mac 的 iterm2 下有较好的体验,支持图片,其他终端将退回到原始格式。

安装 semo-plugin-juejin

这里有多种使用方法安装和使用插件,安装插件的位置是不同的。

方法一,全局安装

npm i -g semo-plugin-juejin
semo juejin help

方法二,安装到 HOME 目录,命令全局可见

Semo 在家目录有个全局插件目录,通过 semo run plugin 来调度。

semo run plugin -- install juejin
semo juejin help

方法三,安装到 Semorun 缓存目录,只能被 run 来调度

这种方式会把插件下载到 run 命令私有的插件目录,这些插件的命令是全局不可见的

semo run juejin -- help

插件的用法

下面看一看帮助信息

semo juejin

掘金命令行客户端[非官方]

Commands:
semo juejin pin [topic] 看掘金沸点
semo juejin post [category] [tag] [sort] 看掘金文章

可以看到这里包含了两个子命令,一个用来看沸点,一个用来看文章,每个命令有一些选项,这里列一些常用组合:

semo juejin pin # 默认行为是自己选择看什么
semo juejin pin -D # 用默认选项看沸点
semo juejin pin -DL # 使用 less 模式,我不想看图
semo juejin pin hot # 可以通过关键词过滤选项
semo juejin pin # 默认行为是自己选择看什么
semo juejin pin -D -S 2 # 一次看两条也是可以的。

semo juejin post -D # 用默认选项看文章
semo juejin post -DC # 一边看还一边进剪贴板,方便进一步加工和保存
semo juejin post -DO # 不看内容,只复制到剪贴板,然后拷贝到其他笔记工具里阅读
semo juejin post -DM # 使用 mdcat 模式,我要看图
semo juejin post backend python hot # 可以通过关键词过滤选项

可以看到命令还是十分灵活的,下面以文章为例,给大家看几个截图演示:

截图

如果不提供默认值就需要自己选。

选完分类选标签

选完标签选排序

然后当然就是选文章啦,注意,这里是支持翻页的

最后是查看文章,注意,到这步可以通过一条命令来完成:

semo juejin post backend go hot

这里默认用的是 less 模式,less 的快捷键都是支持的,格式是 markdown+语法高亮,当然 less 模式是不支持图片的. 所以我还假如了 mdcat 模式,这个模式下支持图片,但是没有 less 那么多的快捷键了。

文章命令退出文章会自动回到上一次的列表页

来一个命令行带图片的截图:

当然,我开发完这个玩具以后,最常用的就是用来刷沸点了,😀

我的收获

开发这个工具的过程中,看了不少关于 terminal 的同类插件,一些想到的功能,一开始以为实现不了,逐渐的都找到了解决方法。所以还是一次不错的经历。

目前的缺点

在支持图片的模式下没有很多快捷键,只有退出和继续,我用的 prompt-sync 不是很符合我的需要。以后慢慢优化吧。

最后

欢迎大家试用和吐槽,对于只想试玩,玩完就删的同学,这里还有一种姿势给大家使用:

npx @semo/cli run juejin -- pin -D # 看沸点
npx @semo/cli clean all # 清理痕迹

如果大家觉得好用或者好玩,麻烦大家动动金手指给老夫来个 Star